package com.second.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.second.common.pojo.R;
import com.second.order.pojo.entity.OrderCost;
import com.second.order.pojo.entity.OrderRecord;
import com.second.order.pojo.vo.OrderRecordQueryVo;
import com.second.order.pojo.vo.OrderRecordVo;
import com.second.order.pojo.vo.PageVo;
import com.second.order.pojo.vo.RecordAndCostVo;

/**
 * (OrderRecord)表服务接口
 *
 * @author lvyongqi
 * @since 2021-07-30 19:49:00
 */
public interface OrderRecordService extends IService<OrderRecord> {

    /**
     * 查询所有的客户信息
     * @param pageVo 分页工具类
     * @param recordQueryVo 模糊查询工具类
     * @return 所有数据
     */
    R getAllOrderRecord(PageVo pageVo, OrderRecordQueryVo recordQueryVo);

    /**
     * 获取订单的费用明细
     * @param costId 费用id
     * @return 费用明细数据
     */
    R getAllCostInfo(Integer costId);

    /**
     * 下订单，添加订单详情
     * @param orderRecordVo 订单详情
     * @return 下单结果
     */
    R placeOrder(OrderRecordVo orderRecordVo);

    /**
     * 支付订单
     * @param recordAndCostVo 订单详情和费用明细
     * @return 支付结果
     */
    R paymentOrder(RecordAndCostVo recordAndCostVo);

    /**
     * 修改订单中的实际取车时间
     * @param orderNumber 订单编号
     * @return 修改结果
     */
    R updateActualPickTime(String orderNumber);

    /**
     * 修改订单中的实际还车时间
     * @param orderNumber 订单编号
     * @return 修改结果
     */
    R updateActualReturnTime(String orderNumber);

    /**
     * 根据会员id，查询所有的订单
     * @param clientId 会员id
     * @return 数据结果
     */
    R getOrderByClientId(Integer clientId);

    /**
     * 根据订单编号，查询出订单的详细信息
     * @param orderId 订单编号
     * @return 数据结果
     */
    R getOrderInfoByOrderId(Integer orderId);

}
